package chpt06;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapDemo01 {

	public static void main(String[] args) {
		// 1.使用HashMap存储多组国家的英文简称和中文全称的键值对
		 Map<String,String> countries = new HashMap<>(); 
		 countries.put("CN","中华人民共和国");
		 countries.put("RU","俄罗斯联邦");
		 countries.put("FR", "法兰西共和国");
		 countries.put("US","美利坚合众国");
		 // 2.显示“CN”对应国家的中文全称
		 String country = countries.get("CN");
		 System.out.println("CN对应的国家是："+ country);
		 // 3.显示集合中元素的个数
		 System.out.println("Map中共有"+countries.size()+"组数据。");
		 // 4.判断Map中是否存在“FR”键的元素
		 System.out.println("Map中含有FR的key吗？" 
				 + countries.containsKey("FR"));
		 // 5.删除键为“FR”的元素，再判断Map中是否含有“FR”键的元素
		 countries.remove("FR");
		 System.out.println("Map中含有FR的key吗？" 
				 + countries.containsKey("FR"));
		 // 6.分别显示键集、值集合键值对集
		 System.out.println("键集： " + countries.keySet());
		 System.out.println("值集： " + countries.values());
		 System.out.println("键-值集： " + countries);	
		 // 7. Map的EntrySet方法遍历Map集合键值对
		 System.out.println("使用EntrySet方法遍历：");
		 for (Map.Entry<String, String> entry:countries.entrySet()){
			 System.out.printf(entry.getKey() + "-->" 
					 + entry.getValue()+"\t");		 
		 }
		 // 8. Iterator迭代器遍历
		 System.out.println("\n通过KeySet的迭代器遍历：");
		 Iterator<String> iter = countries.keySet().iterator();
		 while(iter.hasNext()) {
			 String key = iter.next();
			 System.out.printf(key + "-->" 
					 + countries.get(key)+"\t");		 
		 }
		 // 9. Map.forEach遍历(JDK8++)
		 System.out.println("\n通过forEach遍历：");
	     countries.forEach((key,value)
	    		 -> System.out.println(key + "." + value));
	}
}
